; ModuleID = 'rust_code/src/t3-raw.bc'
source_filename = "t3.432rwazs-cgu.0"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"core::fmt::Formatter" = type { [0 x i64], { i64, i64 }, [0 x i64], { i64, i64 }, [0 x i64], { {}*, [3 x i64]* }, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
%"alloc::vec::Vec<i32>" = type { [0 x i64], { i32*, i64 }, [0 x i64], i64, [0 x i64] }
%"core::fmt::builders::DebugList" = type { [0 x i64], %"core::fmt::builders::DebugInner", [0 x i64] }
%"core::fmt::builders::DebugInner" = type { [0 x i64], %"core::fmt::Formatter"*, [0 x i8], i8, [0 x i8], i8, [6 x i8] }
%"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], { i64*, i64 }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }

@vtable.0 = private unnamed_addr constant { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17h8331db1c30395e65E, i64 8, i64 8, i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE", i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE", i32 (i8**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hf2c7a56c315e0e9bE" }, align 8
@vtable.1 = private unnamed_addr constant { void (i32**)*, i64, i64, i1 (i32**, %"core::fmt::Formatter"*)* } { void (i32**)* bitcast (void (i8**)* @_ZN4core3ptr13drop_in_place17h8331db1c30395e65E to void (i32**)*), i64 8, i64 8, i1 (i32**, %"core::fmt::Formatter"*)* @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4d7f34c437efaf17E" }, align 8
@alloc1 = private unnamed_addr constant <{ [3 x i8] }> <{ [3 x i8] c"v: " }>, align 1
@alloc2 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, align 1
@alloc3 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [3 x i8] }>, <{ [3 x i8] }>* @alloc1, i32 0, i32 0, i32 0), [8 x i8] c"\03\00\00\00\00\00\00\00", i8* getelementptr inbounds (<{ [1 x i8] }>, <{ [1 x i8] }>* @alloc2, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8

; Function Attrs: nonlazybind uwtable
define hidden i64 @_ZN3std2rt10lang_start17h9f88932b9f4d43ceE(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #0 {
start:
  %_7 = alloca i8*, align 8
  %0 = bitcast i8** %_7 to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %0)
  %1 = bitcast i8** %_7 to void ()**
  store void ()* %main, void ()** %1, align 8
  %_4.0 = bitcast i8** %_7 to {}*
  %2 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv)
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %0)
  ret i64 %2
}

; Function Attrs: nonlazybind uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE"(i8** noalias nocapture readonly align 8 dereferenceable(8) %_1) unnamed_addr #0 {
start:
  %0 = bitcast i8** %_1 to void ()**
  %_3 = load void ()*, void ()** %0, align 8, !nonnull !3
  tail call void %_3()
  ret i32 0
}

; Function Attrs: nonlazybind uwtable
define internal zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4d7f34c437efaf17E"(i32** noalias nocapture readonly align 8 dereferenceable(8) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f) unnamed_addr #0 {
start:
  %_4 = load i32*, i32** %self, align 8, !nonnull !3
  %_3.i = tail call zeroext i1 @_ZN4core3fmt9Formatter15debug_lower_hex17h68b810b761abe09bE(%"core::fmt::Formatter"* noalias nonnull readonly align 8 dereferenceable(64) %f), !noalias !4
  br i1 %_3.i, label %bb3.i, label %bb2.i

bb2.i:                                            ; preds = %start
  %_7.i = tail call zeroext i1 @_ZN4core3fmt9Formatter15debug_upper_hex17h20623f52650bb644E(%"core::fmt::Formatter"* noalias nonnull readonly align 8 dereferenceable(64) %f)
  br i1 %_7.i, label %bb7.i, label %bb6.i

bb3.i:                                            ; preds = %start
  %0 = tail call zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h19ab7be5b0fb7587E"(i32* noalias nonnull readonly align 4 dereferenceable(4) %_4, %"core::fmt::Formatter"* nonnull align 8 dereferenceable(64) %f)
  br label %"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E.exit"

bb6.i:                                            ; preds = %bb2.i
  %1 = tail call zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hbb27e86dfb8ce1d4E"(i32* noalias nonnull readonly align 4 dereferenceable(4) %_4, %"core::fmt::Formatter"* nonnull align 8 dereferenceable(64) %f)
  br label %"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E.exit"

bb7.i:                                            ; preds = %bb2.i
  %2 = tail call zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17hd8a7bd4ba29743b9E"(i32* noalias nonnull readonly align 4 dereferenceable(4) %_4, %"core::fmt::Formatter"* nonnull align 8 dereferenceable(64) %f)
  br label %"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E.exit"

"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E.exit": ; preds = %bb7.i, %bb6.i, %bb3.i
  %.0.in.i = phi i1 [ %0, %bb3.i ], [ %2, %bb7.i ], [ %1, %bb6.i ]
  ret i1 %.0.in.i
}

; Function Attrs: nonlazybind uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hf2c7a56c315e0e9bE"(i8** nocapture readonly %_1) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  %0 = bitcast i8** %_1 to void ()**
  %1 = load void ()*, void ()** %0, align 8, !nonnull !3
  tail call void %1(), !noalias !7
  ret i32 0
}

; Function Attrs: nounwind nonlazybind uwtable
define internal fastcc void @_ZN4core3ptr13drop_in_place17h257960caf1e659f3E(%"alloc::vec::Vec<i32>"* nocapture readonly %_1) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
bb4:
  %.idx = bitcast %"alloc::vec::Vec<i32>"* %_1 to i32**
  %.idx.val = load i32*, i32** %.idx, align 8
  %0 = getelementptr %"alloc::vec::Vec<i32>", %"alloc::vec::Vec<i32>"* %_1, i64 0, i32 1, i32 1
  %.idx4.val = load i64, i64* %0, align 8
  %_5.i.i.i = icmp eq i64 %.idx4.val, 0
  br i1 %_5.i.i.i, label %_ZN4core3ptr13drop_in_place17he1b2a224ee49e9a1E.exit, label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i"

"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i": ; preds = %bb4
  %size.i.i.i = shl i64 %.idx4.val, 2
  %1 = icmp eq i32* %.idx.val, null
  %_4.i.i.i = icmp eq i64 %size.i.i.i, 0
  %or.cond.i.i = or i1 %1, %_4.i.i.i
  br i1 %or.cond.i.i, label %_ZN4core3ptr13drop_in_place17he1b2a224ee49e9a1E.exit, label %bb3.i.i.i

bb3.i.i.i:                                        ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i"
  %2 = bitcast i32* %.idx.val to i8*
  tail call void @__rust_dealloc(i8* nonnull %2, i64 %size.i.i.i, i64 4) #6
  br label %_ZN4core3ptr13drop_in_place17he1b2a224ee49e9a1E.exit

_ZN4core3ptr13drop_in_place17he1b2a224ee49e9a1E.exit: ; preds = %bb3.i.i.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i", %bb4
  ret void
}

; Function Attrs: norecurse nounwind nonlazybind readnone uwtable
define internal void @_ZN4core3ptr13drop_in_place17h8331db1c30395e65E(i8** nocapture %_1) unnamed_addr #2 {
start:
  ret void
}

; Function Attrs: nonlazybind uwtable
define internal zeroext i1 @"_ZN61_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58b61a26a8de7f36E"(%"alloc::vec::Vec<i32>"* noalias nocapture readonly align 8 dereferenceable(24) %self, %"core::fmt::Formatter"* align 8 dereferenceable(64) %f) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  %entry.i.i = alloca i32*, align 8
  %_6.i = alloca %"core::fmt::builders::DebugList", align 8
  %0 = bitcast %"alloc::vec::Vec<i32>"* %self to [0 x i32]**
  %_3.idx.val.i1.i = load [0 x i32]*, [0 x i32]** %0, align 8, !alias.scope !10, !nonnull !3
  %1 = getelementptr inbounds %"alloc::vec::Vec<i32>", %"alloc::vec::Vec<i32>"* %self, i64 0, i32 3
  %_4.i = load i64, i64* %1, align 8, !alias.scope !15
  %2 = bitcast %"core::fmt::builders::DebugList"* %_6.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %2), !noalias !16
  call void @_ZN4core3fmt9Formatter10debug_list17h447de572a398fd8dE(%"core::fmt::builders::DebugList"* noalias nocapture nonnull sret dereferenceable(16) %_6.i, %"core::fmt::Formatter"* nonnull align 8 dereferenceable(64) %f), !noalias !16
  %3 = getelementptr inbounds [0 x i32], [0 x i32]* %_3.idx.val.i1.i, i64 0, i64 %_4.i
  %_13.i14.i.i = icmp eq i64 %_4.i, 0
  br i1 %_13.i14.i.i, label %"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h7add5f7085d32df7E.exit", label %bb5.lr.ph.i.i

bb5.lr.ph.i.i:                                    ; preds = %start
  %4 = getelementptr [0 x i32], [0 x i32]* %_3.idx.val.i1.i, i64 0, i64 0
  %5 = bitcast i32** %entry.i.i to i8*
  %_17.0.i.i = bitcast i32** %entry.i.i to {}*
  br label %bb5.i.i

bb5.i.i:                                          ; preds = %bb5.i.i, %bb5.lr.ph.i.i
  %iter.sroa.0.015.i.i = phi i32* [ %4, %bb5.lr.ph.i.i ], [ %6, %bb5.i.i ]
  %6 = getelementptr inbounds i32, i32* %iter.sroa.0.015.i.i, i64 1
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %5), !noalias !16
  store i32* %iter.sroa.0.015.i.i, i32** %entry.i.i, align 8, !noalias !16
  %_15.i.i = call align 8 dereferenceable(16) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList5entry17h79b295a2c0b72b5bE(%"core::fmt::builders::DebugList"* nonnull align 8 dereferenceable(16) %_6.i, {}* nonnull align 1 %_17.0.i.i, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ void (i32**)*, i64, i64, i1 (i32**, %"core::fmt::Formatter"*)* }* @vtable.1 to [3 x i64]*))
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %5), !noalias !16
  %_13.i.i.i = icmp eq i32* %6, %3
  br i1 %_13.i.i.i, label %"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h7add5f7085d32df7E.exit", label %bb5.i.i

"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h7add5f7085d32df7E.exit": ; preds = %bb5.i.i, %start
  %7 = call zeroext i1 @_ZN4core3fmt8builders9DebugList6finish17h63b28a5b1ec2c698E(%"core::fmt::builders::DebugList"* nonnull align 8 dereferenceable(16) %_6.i)
  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %2), !noalias !16
  ret i1 %7
}

; Function Attrs: nonlazybind uwtable
define internal void @_ZN2t34main17h9c03166265c62453E() unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
start:
  %_13.i = alloca [1 x { i8*, i8* }], align 8
  %_6.i = alloca %"core::fmt::Arguments", align 8
  %v.i = alloca %"alloc::vec::Vec<i32>", align 8
  %0 = bitcast %"alloc::vec::Vec<i32>"* %v.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 24, i8* nonnull %0)
  %1 = tail call dereferenceable_or_null(12) i8* @__rust_alloc(i64 12, i64 4) #6
  %2 = icmp eq i8* %1, null
  br i1 %2, label %bb3.i.i, label %bb5.i

bb3.i.i:                                          ; preds = %start
  tail call void @_ZN5alloc5alloc18handle_alloc_error17he602a36a7d59d201E(i64 12, i64 4) #6
  unreachable

bb5.i:                                            ; preds = %start
  %3 = bitcast i8* %1 to i32*
  store i32 1, i32* %3, align 4
  %4 = getelementptr inbounds i8, i8* %1, i64 4
  %5 = bitcast i8* %4 to i32*
  store i32 2, i32* %5, align 4
  %6 = getelementptr inbounds i8, i8* %1, i64 8
  %7 = bitcast i8* %6 to i32*
  store i32 3, i32* %7, align 4
  %8 = bitcast %"alloc::vec::Vec<i32>"* %v.i to i8**
  store i8* %1, i8** %8, align 8, !alias.scope !19, !noalias !26
  %9 = getelementptr inbounds %"alloc::vec::Vec<i32>", %"alloc::vec::Vec<i32>"* %v.i, i64 0, i32 1, i32 1
  %10 = bitcast i64* %9 to <2 x i64>*
  store <2 x i64> <i64 3, i64 3>, <2 x i64>* %10, align 8, !alias.scope !19, !noalias !26
  %11 = bitcast %"core::fmt::Arguments"* %_6.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 48, i8* nonnull %11)
  %12 = bitcast [1 x { i8*, i8* }]* %_13.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %12)
  %13 = bitcast [1 x { i8*, i8* }]* %_13.i to %"alloc::vec::Vec<i32>"**
  store %"alloc::vec::Vec<i32>"* %v.i, %"alloc::vec::Vec<i32>"** %13, align 8
  %14 = getelementptr inbounds [1 x { i8*, i8* }], [1 x { i8*, i8* }]* %_13.i, i64 0, i64 0, i32 1
  store i8* bitcast (i1 (%"alloc::vec::Vec<i32>"*, %"core::fmt::Formatter"*)* @"_ZN61_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58b61a26a8de7f36E" to i8*), i8** %14, align 8
  %15 = bitcast %"core::fmt::Arguments"* %_6.i to [0 x { [0 x i8]*, i64 }]**
  store [0 x { [0 x i8]*, i64 }]* bitcast (<{ i8*, [8 x i8], i8*, [8 x i8] }>* @alloc3 to [0 x { [0 x i8]*, i64 }]*), [0 x { [0 x i8]*, i64 }]** %15, align 8, !alias.scope !29, !noalias !32
  %16 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %_6.i, i64 0, i32 1, i32 1
  store i64 2, i64* %16, align 8, !alias.scope !29, !noalias !32
  %17 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %_6.i, i64 0, i32 3, i32 0
  store i64* null, i64** %17, align 8, !alias.scope !29, !noalias !32
  %18 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %_6.i, i64 0, i32 5, i32 0
  %19 = bitcast [0 x { i8*, i8* }]** %18 to [1 x { i8*, i8* }]**
  store [1 x { i8*, i8* }]* %_13.i, [1 x { i8*, i8* }]** %19, align 8, !alias.scope !29, !noalias !32
  %20 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %_6.i, i64 0, i32 5, i32 1
  store i64 1, i64* %20, align 8, !alias.scope !29, !noalias !32
  invoke void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture nonnull dereferenceable(48) %_6.i)
          to label %bb6.i unwind label %cleanup.i

bb6.i:                                            ; preds = %bb5.i
  %21 = bitcast %"alloc::vec::Vec<i32>"* %v.i to i32**
  call void @llvm.lifetime.end.p0i8(i64 48, i8* nonnull %11)
  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %12)
  %.idx.val.i.i = load i32*, i32** %21, align 8
  %.idx4.val.i.i = load i64, i64* %9, align 8
  %_5.i.i.i.i.i = icmp eq i64 %.idx4.val.i.i, 0
  br i1 %_5.i.i.i.i.i, label %_ZN2t34heap17he114499cd4d5e853E.exit, label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i.i.i"

"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i.i.i": ; preds = %bb6.i
  %size.i.i.i.i.i = shl i64 %.idx4.val.i.i, 2
  %22 = icmp eq i32* %.idx.val.i.i, null
  %_4.i.i.i.i.i = icmp eq i64 %size.i.i.i.i.i, 0
  %or.cond.i.i.i.i = or i1 %22, %_4.i.i.i.i.i
  br i1 %or.cond.i.i.i.i, label %_ZN2t34heap17he114499cd4d5e853E.exit, label %bb3.i.i.i.i.i

bb3.i.i.i.i.i:                                    ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i.i.i"
  %23 = bitcast i32* %.idx.val.i.i to i8*
  call void @__rust_dealloc(i8* nonnull %23, i64 %size.i.i.i.i.i, i64 4) #6
  br label %_ZN2t34heap17he114499cd4d5e853E.exit

cleanup.i:                                        ; preds = %bb5.i
  %24 = landingpad { i8*, i32 }
          cleanup
  call fastcc void @_ZN4core3ptr13drop_in_place17h257960caf1e659f3E(%"alloc::vec::Vec<i32>"* nonnull %v.i) #7
  resume { i8*, i32 } %24

_ZN2t34heap17he114499cd4d5e853E.exit:             ; preds = %bb3.i.i.i.i.i, %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hc558fa86ff7f59f0E.exit.i.i.i.i", %bb6.i
  call void @llvm.lifetime.end.p0i8(i64 24, i8* nonnull %0)
  ret void
}

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #3

; Function Attrs: nonlazybind uwtable
declare i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24), i64, i8**) unnamed_addr #0

; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #3

; Function Attrs: nonlazybind uwtable
declare void @_ZN4core3fmt9Formatter10debug_list17h447de572a398fd8dE(%"core::fmt::builders::DebugList"* noalias nocapture sret dereferenceable(16), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @_ZN4core3fmt8builders9DebugList6finish17h63b28a5b1ec2c698E(%"core::fmt::builders::DebugList"* align 8 dereferenceable(16)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @_ZN4core3fmt9Formatter15debug_lower_hex17h68b810b761abe09bE(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h19ab7be5b0fb7587E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @_ZN4core3fmt9Formatter15debug_upper_hex17h20623f52650bb644E(%"core::fmt::Formatter"* noalias readonly align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @"_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17hd8a7bd4ba29743b9E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nonlazybind uwtable
declare zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hbb27e86dfb8ce1d4E"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #0

; Function Attrs: nounwind nonlazybind uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #1

; Function Attrs: nonlazybind uwtable
declare align 8 dereferenceable(16) %"core::fmt::builders::DebugList"* @_ZN4core3fmt8builders9DebugList5entry17h79b295a2c0b72b5bE(%"core::fmt::builders::DebugList"* align 8 dereferenceable(16), {}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24)) unnamed_addr #0

; Function Attrs: noreturn nounwind nonlazybind uwtable
declare void @_ZN5alloc5alloc18handle_alloc_error17he602a36a7d59d201E(i64, i64) unnamed_addr #4

; Function Attrs: nounwind nonlazybind uwtable
declare noalias i8* @__rust_alloc(i64, i64) unnamed_addr #1

; Function Attrs: nounwind nonlazybind uwtable
declare void @__rust_dealloc(i8*, i64, i64) unnamed_addr #1

; Function Attrs: nonlazybind uwtable
declare void @_ZN3std2io5stdio6_print17h35ebd65662fa8b15E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr #0

; Function Attrs: nonlazybind
define i32 @main(i32 %0, i8** %1) unnamed_addr #5 {
top:
  %_7.i = alloca i8*, align 8
  %2 = sext i32 %0 to i64
  %3 = bitcast i8** %_7.i to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %3)
  %4 = bitcast i8** %_7.i to void ()**
  store void ()* @_ZN2t34main17h9c03166265c62453E, void ()** %4, align 8
  %_4.0.i = bitcast i8** %_7.i to {}*
  %5 = call i64 @_ZN3std2rt19lang_start_internal17hf4abd869024c3270E({}* nonnull align 1 %_4.0.i, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }* @vtable.0 to [3 x i64]*), i64 %2, i8** %1)
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %3)
  %6 = trunc i64 %5 to i32
  ret i32 %6
}

attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #1 = { nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #2 = { norecurse nounwind nonlazybind readnone uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #3 = { argmemonly nounwind willreturn }
attributes #4 = { noreturn nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #5 = { nonlazybind "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #6 = { nounwind }
attributes #7 = { noinline }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 7, !"PIC Level", i32 2}
!1 = !{i32 7, !"PIE Level", i32 2}
!2 = !{i32 2, !"RtLibUseGOT", i32 1}
!3 = !{}
!4 = !{!5}
!5 = distinct !{!5, !6, !"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E: %self"}
!6 = distinct !{!6, !"_ZN4core3fmt3num50_$LT$impl$u20$core..fmt..Debug$u20$for$u20$i32$GT$3fmt17hb6b500d511226317E"}
!7 = !{!8}
!8 = distinct !{!8, !9, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE: %_1"}
!9 = distinct !{!9, !"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE"}
!10 = !{!11, !13}
!11 = distinct !{!11, !12, !"_ZN5alloc3vec12Vec$LT$T$GT$6as_ptr17h718ff90327b37380E: %self"}
!12 = distinct !{!12, !"_ZN5alloc3vec12Vec$LT$T$GT$6as_ptr17h718ff90327b37380E"}
!13 = distinct !{!13, !14, !"_ZN68_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h4e3ed8d2110c2d18E: %self"}
!14 = distinct !{!14, !"_ZN68_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h4e3ed8d2110c2d18E"}
!15 = !{!13}
!16 = !{!17}
!17 = distinct !{!17, !18, !"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h7add5f7085d32df7E: %self.0"}
!18 = distinct !{!18, !"_ZN48_$LT$$u5b$T$u5d$$u20$as$u20$core..fmt..Debug$GT$3fmt17h7add5f7085d32df7E"}
!19 = !{!20, !22, !24}
!20 = distinct !{!20, !21, !"_ZN5alloc3vec12Vec$LT$T$GT$14from_raw_parts17hd315c187a8dad0a1E: argument 0"}
!21 = distinct !{!21, !"_ZN5alloc3vec12Vec$LT$T$GT$14from_raw_parts17hd315c187a8dad0a1E"}
!22 = distinct !{!22, !23, !"_ZN5alloc5slice4hack8into_vec17h6fc32796132febf0E: argument 0"}
!23 = distinct !{!23, !"_ZN5alloc5slice4hack8into_vec17h6fc32796132febf0E"}
!24 = distinct !{!24, !25, !"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8into_vec17hd329e04adbba45ceE: argument 0"}
!25 = distinct !{!25, !"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8into_vec17hd329e04adbba45ceE"}
!26 = !{!27, !28}
!27 = distinct !{!27, !23, !"_ZN5alloc5slice4hack8into_vec17h6fc32796132febf0E: argument 1"}
!28 = distinct !{!28, !25, !"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8into_vec17hd329e04adbba45ceE: %self.0"}
!29 = !{!30}
!30 = distinct !{!30, !31, !"_ZN4core3fmt9Arguments6new_v117hc1127a6437d08baeE: argument 0"}
!31 = distinct !{!31, !"_ZN4core3fmt9Arguments6new_v117hc1127a6437d08baeE"}
!32 = !{!33}
!33 = distinct !{!33, !31, !"_ZN4core3fmt9Arguments6new_v117hc1127a6437d08baeE: %args.0"}

^0 = module: (path: "rust_code/src/t3-raw.bc", hash: (3380284351, 2453192099, 1182016161, 1101046600, 1555679132))
^1 = gv: (name: "_ZN3std2io5stdio6_print17h35ebd65662fa8b15E") ; guid = 1319781380539929304
^2 = gv: (name: "vtable.1", summaries: (variable: (module: ^0, flags: (linkage: private, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), varFlags: (readonly: 1, writeonly: 1), refs: (^12, ^7)))) ; guid = 2515554142379962347
^3 = gv: (name: "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17hf2c7a56c315e0e9bE", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 4, refs: (^24)))) ; guid = 3161307860042267642
^4 = gv: (name: "llvm.lifetime.start.p0i8") ; guid = 3657761528566682672
^5 = gv: (name: "__rust_dealloc") ; guid = 4639430271351303854
^6 = gv: (name: "_ZN4core3fmt9Formatter10debug_list17h447de572a398fd8dE") ; guid = 4669929767587435169
^7 = gv: (name: "_ZN4core3ptr13drop_in_place17h8331db1c30395e65E", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 1, funcFlags: (readNone: 1, readOnly: 0, noRecurse: 1, returnDoesNotAlias: 0, noInline: 0, alwaysInline: 0)))) ; guid = 4990241144767844533
^8 = gv: (name: "_ZN61_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17h58b61a26a8de7f36E", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 27, calls: ((callee: ^6), (callee: ^26), (callee: ^23)), refs: (^24, ^2)))) ; guid = 4993927004383270762
^9 = gv: (name: "_ZN4core3fmt9Formatter15debug_upper_hex17h20623f52650bb644E") ; guid = 5354018299097794181
^10 = gv: (name: "vtable.0", summaries: (variable: (module: ^0, flags: (linkage: private, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), varFlags: (readonly: 1, writeonly: 1), refs: (^25, ^3, ^7)))) ; guid = 7346897996200072476
^11 = gv: (name: "_ZN3std2rt19lang_start_internal17hf4abd869024c3270E") ; guid = 8189678606104198257
^12 = gv: (name: "_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17h4d7f34c437efaf17E", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 13, calls: ((callee: ^18), (callee: ^9), (callee: ^21), (callee: ^13), (callee: ^14))))) ; guid = 8719283087539780767
^13 = gv: (name: "_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hbb27e86dfb8ce1d4E") ; guid = 8803272442355811549
^14 = gv: (name: "_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i32$GT$3fmt17hd8a7bd4ba29743b9E") ; guid = 9055374366088733241
^15 = gv: (name: "_ZN2t34main17h9c03166265c62453E", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 63, calls: ((callee: ^16), (callee: ^29), (callee: ^1), (callee: ^5), (callee: ^19)), refs: (^24, ^8, ^20)))) ; guid = 9901848012544388508
^16 = gv: (name: "__rust_alloc") ; guid = 10301051264606935346
^17 = gv: (name: "alloc1", summaries: (variable: (module: ^0, flags: (linkage: private, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), varFlags: (readonly: 1, writeonly: 1)))) ; guid = 10327460815294207305
^18 = gv: (name: "_ZN4core3fmt9Formatter15debug_lower_hex17h68b810b761abe09bE") ; guid = 10823902440453812321
^19 = gv: (name: "_ZN4core3ptr13drop_in_place17h257960caf1e659f3E", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 15, calls: ((callee: ^5)), refs: (^24)))) ; guid = 10968037021607594718
^20 = gv: (name: "alloc3", summaries: (variable: (module: ^0, flags: (linkage: private, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), varFlags: (readonly: 1, writeonly: 1), refs: (^17, ^27)))) ; guid = 11703658327269779818
^21 = gv: (name: "_ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i32$GT$3fmt17h19ab7be5b0fb7587E") ; guid = 14177975379368970269
^22 = gv: (name: "llvm.lifetime.end.p0i8") ; guid = 14311549039910520616
^23 = gv: (name: "_ZN4core3fmt8builders9DebugList6finish17h63b28a5b1ec2c698E") ; guid = 14351388276349526451
^24 = gv: (name: "rust_eh_personality") ; guid = 14807195490537628141
^25 = gv: (name: "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h2e0fe6713b653ddbE", summaries: (function: (module: ^0, flags: (linkage: internal, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 4))) ; guid = 14847476433558512312
^26 = gv: (name: "_ZN4core3fmt8builders9DebugList5entry17h79b295a2c0b72b5bE") ; guid = 15095064041112520973
^27 = gv: (name: "alloc2", summaries: (variable: (module: ^0, flags: (linkage: private, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), varFlags: (readonly: 1, writeonly: 1)))) ; guid = 15376274239728155330
^28 = gv: (name: "main", summaries: (function: (module: ^0, flags: (linkage: external, notEligibleToImport: 0, live: 0, dsoLocal: 0, canAutoHide: 0), insts: 11, calls: ((callee: ^11)), refs: (^15, ^10)))) ; guid = 15822663052811949562
^29 = gv: (name: "_ZN5alloc5alloc18handle_alloc_error17he602a36a7d59d201E") ; guid = 16482878049697255633
^30 = gv: (name: "_ZN3std2rt10lang_start17h9f88932b9f4d43ceE", summaries: (function: (module: ^0, flags: (linkage: external, notEligibleToImport: 0, live: 0, dsoLocal: 1, canAutoHide: 0), insts: 9, calls: ((callee: ^11)), refs: (^10)))) ; guid = 16902746934237934622
